#ifndef EnergySchedulingType_H
#define EnergySchedulingType_H

#include "IdentifiedObject.hpp"
#include <list>
#include "Boolean.hpp"
#include "Float.hpp"



namespace CIMPP {


class EnergySource;
	/*
	Used to define the type of generation for scheduling purposes.
	*/
	class EnergySchedulingType: public IdentifiedObject
	{

	public:
					std::list<CIMPP::EnergySource*> EnergySource; 	/* Energy Scheduling Type of an Energy Source Default: 0 */
				
		static const char debugName[];
		virtual const char* debugString();
		
		/* constructor initialising all attributes to null */
		EnergySchedulingType();
		virtual ~EnergySchedulingType();
	
		static void addConstructToMap(std::unordered_map<std::string, BaseClass* (*)()>& factory_map);
		static void addPrimitiveAssignFnsToMap(std::unordered_map<std::string, assign_function>&);
		static void addClassAssignFnsToMap(std::unordered_map<std::string, class_assign_function>&);
		static const BaseClassDefiner declare();

	};

	BaseClass* EnergySchedulingType_factory();
}
#endif
